home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #6
/
Amiga Plus CD - 2004 - No. 06.iso
/
AmiSoft
/
Util
/
libs
/
ExtraLib.lha
/
Extra
/
include
/
rhosigma
/
extra_lib.i
< prev
next >
Wrap
Text File
|
2004-05-30
|
16KB
|
421 lines
; ___________________________________________________________________________
; |*************************************************************************|
; |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
; |*| Set TAB to 15 for best readable file layout. |*| HiSoft DevPac 3.04 |*|
; |*|______________________________________________|*|____________________|*|
; |*************************************************************************|
; |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
; |*| |*| $Id: extra_lib.i (30.05.04) |*|
; |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
; |*| ## ## ## # |*| _________________________________________________ |*|
; |*| ## ## ## |*| |*|
; |*| ###### ## |*| The vector offsets of extra.libary's functions |*|
; |*| ## ## |*| |*|
; |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
; |*| ## ###### |*| Copyright © 1998-2004 RhoSigma, Roland Heyder |*|
; |*| |*| All Rights Reserved. |*|
; |*|_______________|*|___________________________________________________|*|
; |*************************************************************************|
; ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
IFND EXTRA_LIB_I
EXTRA_LIB_I SET 1
** start bias (-30) **
;--------------------------------------------------------------------
; ------------------------------------------- Interne Funktionen ---
;--------------------------------------------------------------------
** private (-30) **
** private (-36) **
;--------------------------------------------------------------------
; --------------------------- TRACKDISK/RAMDRIVE - Erweiterungen ---
;--------------------------------------------------------------------
_LVO_EXTRA_BAMCheckSum = -42
_LVO_EXTRA_BootBlockSum = -48
_LVO_EXTRA_DiskBlockSum = -54
;--------------------------------------------------------------------
; ------------------------------------------ DOS - Erweiterungen ---
; --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
;--------------------------------------------------------------------
_LVO_EXTRA_OpenBuf = -60
_LVO_EXTRA_CloseBuf = -66
_LVO_EXTRA_FileToBuf = -72
_LVO_EXTRA_BufToFile = -78
_LVO_EXTRA_ClearBuf = -84
_LVO_EXTRA_DuplicateBuf = -90
_LVO_EXTRA_BufInfo = -96
_LVO_EXTRA_SeekBuf = -102
_LVO_EXTRA_Store = -108
_LVO_EXTRA_InsertBuf = -114
_LVO_EXTRA_InsertFile = -120
_LVO_EXTRA_Replace = -126
_LVO_EXTRA_Get = -132
_LVO_EXTRA_Clear = -138
_LVO_EXTRA_FindData = -144
_LVO_EXTRA_FindNext = -150
_LVO_EXTRA_FindPrev = -156
_LVO_EXTRA_FreeFinds = -162
_LVO_EXTRA_SetBookmark = -168
_LVO_EXTRA_GotoBookmark = -174
; -------------------------------------------------------------------
_LVO_EXTRA_FindString = -180
_LVO_EXTRA_GetLength = -186
_LVO_EXTRA_LastError = -192
_LVO_EXTRA_LongToString = -198
_LVO_EXTRA_StringToLong = -204
_LVO_EXTRA_PackByteRun1 = -210
_LVO_EXTRA_UnpackByteRun1 = -216
_LVO_EXTRA_PrintIoError = -222
_LVO_EXTRA_FlipCase = -228
;--------------------------------------------------------------------
; ----------------------------------------- EXEC - Erweiterungen ---
;--------------------------------------------------------------------
_LVO_EXTRA_CmpMem = -234
_LVO_EXTRA_CopyMemI = -240
_LVO_EXTRA_FillMem = -246
_LVO_EXTRA_GetMem = -252
_LVO_EXTRA_UnGetMem = -258
;--------------------------------------------------------------------
; ------------------------------------- GRAPHICS - Erweiterungen ---
;--------------------------------------------------------------------
_LVO_EXTRA_OutlineOff = -264
_LVO_EXTRA_OutlineOn = -270
_LVO_EXTRA_SetOPen = -276
_LVO_EXTRA_SpecText = -282
_LVO_EXTRA_SpecTextPrefs = -288
;--------------------------------------------------------------------
; ------------------------------------ INTUITION - Erweiterungen ---
;--------------------------------------------------------------------
_LVO_EXTRA_ShowMsg = -294
;
;====================================================================
; === neu ab v2.062 ================================================
;====================================================================
;
;--------------------------------------------------------------------
; ------------------------------------------ DOS - Erweiterungen ---
; --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
;--------------------------------------------------------------------
_LVO_EXTRA_v2_OpenBuf = -300
_LVO_EXTRA_v2_FileToBuf = -306
_LVO_EXTRA_v2_DuplicateBuf = -312
;
;====================================================================
; === neu ab v3.342 ================================================
;====================================================================
;
;--------------------------------------------------------------------
; ------------------------------------------ DOS - Erweiterungen ---
;--------------------------------------------------------------------
_LVO_EXTRA_VSPrintF = -318
;--------------------------------------------------------------------
; ----------------------------------------- EXEC - Erweiterungen ---
;--------------------------------------------------------------------
_LVO_EXTRA_GetMem16 = -324
;--------------------------------------------------------------------
; ----------------------------------------- MATH - Erweiterungen ---
; --------- diverse Fließkomma/Ascii/Integer-Umwandlungen --------
;--------------------------------------------------------------------
_LVO_EXTRA_DiscardString = -330
; ------------------------------------------- Wandlung nach Ascii ---
_LVO_EXTRA_Int32ToString = -336
_LVO_EXTRA_Int64ToString = -342
_LVO_EXTRA_FFPToString = -348
_LVO_EXTRA_SGLToString = -354
_LVO_EXTRA_DBLToString = -360
; ------------------------------------ Wandlung nach Int32 (LONG) ---
_LVO_EXTRA_StringToInt32 = -366
;--------------------------------------------------------------------
; --------------------------------------- Reservierte Funktionen ---
;--------------------------------------------------------------------
** private (-372) **
** private (-378) **
** private (-384) **
** private (-390) **
** private (-396) **
** private (-402) **
** private (-408) **
** private (-414) **
** private (-420) **
** private (-426) **
** private (-432) **
** private (-438) **
** private (-444) **
** private (-450) **
** private (-456) **
** private (-462) **
** private (-468) **
** private (-474) **
** private (-480) **
** private (-486) **
** private (-492) **
** private (-498) **
** private (-504) **
** private (-510) **
IFD NDK_LVO_NAMES
;----------------------------------------------------------------------------
; Die alten Symbole nach NDK-Norm werden nur noch verwendet, wenn es explizit
; gewünscht wird (z.B. in Voraussicht auf die Einbindung der amiga.lib oder
; anderer Module, welche nur die alten NDK-Symbole kennen.). Diese Symbole
; werden daher auch gleich exportiert. Definieren Sie zu diesem Zwecke das
; Symbol NDK_LVO_NAMES mit einem beliebigen Wert.
;----------------------------------------------------------------------------
** start bias (-30) **
;--------------------------------------------------------------------
; ------------------------------------------- Interne Funktionen ---
;--------------------------------------------------------------------
** private (-30) **
** private (-36) **
;--------------------------------------------------------------------
; --------------------------- TRACKDISK/RAMDRIVE - Erweiterungen ---
;--------------------------------------------------------------------
_LVOBAMCheckSum = -42
_LVOBootBlockSum = -48
_LVODiskBlockSum = -54
;--------------------------------------------------------------------
; ------------------------------------------ DOS - Erweiterungen ---
; --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
;--------------------------------------------------------------------
_LVOOpenBuf = -60
_LVOCloseBuf = -66
_LVOFileToBuf = -72
_LVOBufToFile = -78
_LVOClearBuf = -84
_LVODuplicateBuf = -90
_LVOBufInfo = -96
_LVOSeekBuf = -102
_LVOStore = -108
_LVOInsertBuf = -114
_LVOInsertFile = -120
_LVOReplace = -126
_LVOGet = -132
_LVOClear = -138
_LVOFindData = -144
_LVOFindNext = -150
_LVOFindPrev = -156
_LVOFreeFinds = -162
_LVOSetBookmark = -168
_LVOGotoBookmark = -174
; -------------------------------------------------------------------
_LVOFindString = -180
_LVOGetLength = -186
_LVOLastError = -192
_LVOLongToString = -198
_LVOStringToLong = -204
_LVOPackByteRun1 = -210
_LVOUnpackByteRun1 = -216
_LVOPrintIoError = -222
_LVOFlipCase = -228
;--------------------------------------------------------------------
; ----------------------------------------- EXEC - Erweiterungen ---
;--------------------------------------------------------------------
_LVOCmpMem = -234
_LVOCopyMemI = -240
_LVOFillMem = -246
_LVOGetMem = -252
_LVOUnGetMem = -258
;--------------------------------------------------------------------
; ------------------------------------- GRAPHICS - Erweiterungen ---
;--------------------------------------------------------------------
_LVOOutlineOff = -264
_LVOOutlineOn = -270
_LVOSetOPen = -276
_LVOSpecText = -282
_LVOSpecTextPrefs = -288
;--------------------------------------------------------------------
; ------------------------------------ INTUITION - Erweiterungen ---
;--------------------------------------------------------------------
_LVOShowMsg = -294
;
;====================================================================
; === neu ab v2.062 ================================================
;====================================================================
;
;--------------------------------------------------------------------
; ------------------------------------------ DOS - Erweiterungen ---
; --------- Funktionen zum DBS (Dynamic-Buffer-System) -----------
;--------------------------------------------------------------------
_LVOv2_OpenBuf = -300
_LVOv2_FileToBuf = -306
_LVOv2_DuplicateBuf = -312
;
;====================================================================
; === neu ab v3.342 ================================================
;====================================================================
;
;--------------------------------------------------------------------
; ------------------------------------------ DOS - Erweiterungen ---
;--------------------------------------------------------------------
_LVOVSPrintF = -318
;--------------------------------------------------------------------
; ----------------------------------------- EXEC - Erweiterungen ---
;--------------------------------------------------------------------
_LVOGetMem16 = -324
;--------------------------------------------------------------------
; ----------------------------------------- MATH - Erweiterungen ---
; --------- diverse Fließkomma/Ascii/Integer-Umwandlungen --------
;--------------------------------------------------------------------
_LVODiscardString = -330
; ------------------------------------------- Wandlung nach Ascii ---
_LVOInt32ToString = -336
_LVOInt64ToString = -342
_LVOFFPToString = -348
_LVOSGLToString = -354
_LVODBLToString = -360
; ------------------------------------ Wandlung nach Int32 (LONG) ---
_LVOStringToInt32 = -366
;--------------------------------------------------------------------
; --------------------------------------- Reservierte Funktionen ---
;--------------------------------------------------------------------
** private (-372) **
** private (-378) **
** private (-384) **
** private (-390) **
** private (-396) **
** private (-402) **
** private (-408) **
** private (-414) **
** private (-420) **
** private (-426) **
** private (-432) **
** private (-438) **
** private (-444) **
** private (-450) **
** private (-456) **
** private (-462) **
** private (-468) **
** private (-474) **
** private (-480) **
** private (-486) **
** private (-492) **
** private (-498) **
** private (-504) **
** private (-510) **
XDEF _LVOBAMCheckSum
XDEF _LVOBootBlockSum
XDEF _LVODiskBlockSum
XDEF _LVOOpenBuf
XDEF _LVOCloseBuf
XDEF _LVOFileToBuf
XDEF _LVOBufToFile
XDEF _LVOClearBuf
XDEF _LVODuplicateBuf
XDEF _LVOBufInfo
XDEF _LVOSeekBuf
XDEF _LVOStore
XDEF _LVOInsertBuf
XDEF _LVOInsertFile
XDEF _LVOReplace
XDEF _LVOGet
XDEF _LVOClear
XDEF _LVOFindData
XDEF _LVOFindNext
XDEF _LVOFindPrev
XDEF _LVOFreeFinds
XDEF _LVOSetBookmark
XDEF _LVOGotoBookmark
XDEF _LVOFindString
XDEF _LVOGetLength
XDEF _LVOLastError
XDEF _LVOLongToString
XDEF _LVOStringToLong
XDEF _LVOPackByteRun1
XDEF _LVOUnpackByteRun1
XDEF _LVOPrintIoError
XDEF _LVOFlipCase
XDEF _LVOCmpMem
XDEF _LVOCopyMemI
XDEF _LVOFillMem
XDEF _LVOGetMem
XDEF _LVOUnGetMem
XDEF _LVOOutlineOff
XDEF _LVOOutlineOn
XDEF _LVOSetOPen
XDEF _LVOSpecText
XDEF _LVOSpecTextPrefs
XDEF _LVOShowMsg
XDEF _LVOv2_OpenBuf
XDEF _LVOv2_FileToBuf
XDEF _LVOv2_DuplicateBuf
XDEF _LVOVSPrintF
XDEF _LVOGetMem16
XDEF _LVODiscardString
XDEF _LVOInt32ToString
XDEF _LVOInt64ToString
XDEF _LVOFFPToString
XDEF _LVOSGLToString
XDEF _LVODBLToString
XDEF _LVOStringToInt32
;----------------------------------------------------------------------------
ENDC
;*** lvo / Lib-Call-Macro ***
;============================================================================
; Dieses Macro dient zum Aufruf einer Funktion aus der dazugehörigen Library.
; Dabei ist dieses Macro gegenüber den CALL-Macros des NDK jedoch so intelli-
; gent, daß es erkennt, ob mit ihm auch wirklich eine Funktion der zugehörigen
; Library aufgerufen wird. Damit wird vermieden, daß versehendlich z.B. eine
; Funktion der exec.library mit dem Macro (und damit natürlich auch dem Zeiger)
; der graphics.library aufgerufen werden kann, was höchstwahrscheinlich sofort
; einen Systemabsturz nach sich ziehen würde.
; Außerdem haben Optimal-Programmierer auch die Möglichkeit Quick-Aufrufe zu
; verwenden, um jedes überflüssige Byte einzusparen. Für die Programmierung re-
; entranter Programme ist ebenfalls eine Syntax definiert, bei der die voll-
; ständige effektive Addresse des Basis-Zeigers als Parameter übergeben werden
; muß, da dort ja keine flüchtigen absoluten Adressen verwendet werden dürfen.
;----------------------------------------------------------------------------
; Definiert: ... _lib.i (Copyright © 1998-2004 RhoSigma, Roland Heyder)
;
; Schablone: Func/A, Opts/F/S
;
; Parameter: Func --> Name der aufzurufenden Funktion ohne »_LVO_LIBNAME_«
;
; Opts --> - das Schlüsselwort »OK« für einen QuickJump-Aufruf
; (s. Bemerkung)
;
; - Opts weglassen, um Basis-Symbol »_LibnameBase« ins
; Register A6 zu laden
;
; - die effektive Adresse, welche die Basis der Library
; enthält (z.B. »globals_Libname(a5)«)
;
; Bemerkung: Wird das Schlüsselwort »OK« angegeben, dann wird davon ausge-
; gangen, daß die richtige Basisadresse der Library bereits im
; Register A6 steht, und es wird sofort in die Funktion gesprungen.
;============================================================================
DOEXTRA MACRO (Func/A, Opts/F/S)
;--------------------------------
IFND _LVO_EXTRA_\1
FAIL \1 (unknown or DOEXTRA is wrong)
ENDC
;OK for opts means base ready, no baseloading needed
IFC '\2','OK'
jsr _LVO_EXTRA_\1(a6)
MEXIT
ENDC
;nothing means, load static base (for non-pure code only)
IFC '\2',''
movea.l _ExtraBase,a6
jsr _LVO_EXTRA_\1(a6)
MEXIT
ENDC
;else opts should be the entire baselocation (for pure code)
movea.l \2,a6
jsr _LVO_EXTRA_\1(a6)
;--------------------------------
ENDM ;DOEXTRA
ENDC ;extra_lib.i